package tt.dz.egobus.servicemanager.service;

import tt.dz.egobus.api.ResponseBack;
import tt.dz.egobus.api.page.Page;
import tt.dz.egobus.api.page.Pageable;
import tt.dz.egobus.api.usercenter.DeleteBack;
import tt.dz.egobus.api.usercenter.staff.StaffBack;
import tt.dz.egobus.vo.KV;

import java.util.List;

/**
 * @author Anson
 * @date 17-4-1
 * @name 司机curd管理服务层
 * @since 1.0.3
 */
public interface DriverManagerService {

    /**
     * @author Anson
     * @date 17-4-18
     * @name 全查询
     * @since 1.0.4
     */
    ResponseBack<List<StaffBack>> queryAll();

    /**
     * @param idcard 身份证
     * @author Anson
     * @date 17-4-18
     * @name 判断某个身份证是否被使用
     * @since 1.0.4
     */
    ResponseBack<Boolean> judgeStaffExists(String idcard);


    /**
     * @param idCard   身份证号码
     * @param realName 真实名称
     * @author Anson
     * @date 17-4-18
     * @name 新增
     * @since 1.0.4
     */
    ResponseBack<StaffBack> createStaff(String realName, String idCard);

    /**
     * @param pageable 可分页对象
     * @author Anson
     * @date 17-4-18
     * @name 分页查询
     * @since 1.0.4
     */
    ResponseBack<Page<StaffBack>> queryStaffPage(Pageable pageable);


    /**
     * @param ids id集合
     * @author Anson
     * @date 17-4-18
     * @name 删除
     * @since 1.0.4
     */
    ResponseBack<DeleteBack> deleteStaff(String[] ids);

    /**
     * @param sId      当前id
     * @param realName 真实姓名
     * @param idCard   身份证
     * @author Anson
     * @date 17-4-18
     * @name 更新
     * @since 1.0.4
     */
    ResponseBack<StaffBack> updataStaff(String sId, String realName, String idCard);

    /**
     * @param id 删除的id
     * @author Anson
     * @date 17-4-18
     * @name 删除司机
     * @since 1.0.4
     */
    KV<Boolean,String> deleteStaff(String id);
}
